// Learn TypeScript:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

    _pool:cc.NodePool;

    lastClick = 0;

    // LIFE-CYCLE CALLBACKS:

    onLoad () {

        this.reuse();
    }

  reuse(){

    this.node.paused=false;

    this.node.on(cc.Node.EventType.TOUCH_END,this.pauseresume,this.node);
  }

  unuse () {
    this.node.off(cc.Node.EventType.TOUCH_END,this. pauseresume, this.node);
},

  pauseresume () {
    var now = Date.now();
    // Double click in 300 ms
    if (now - this.lastClick < 300) {

        this.stopAllActions();

        var pool = this.getComponent('PoolHandler')._pool;
        if (pool) {
            pool.put(this);
        }
        else {
            this.removeFromParent(true);
        }
    }
    // Click
    else {
        if (this.paused) {
            cc.director.getActionManager().resumeTarget(this);
        }
        else {
            cc.director.getActionManager().pauseTarget(this);
        }
        this.paused = !this.paused;
    }
    lastClick = now;
}
    // update (dt) {}
}
